home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / goollery_xss.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  86 lines

  1. #
  2. # This script was written by David Maciejak <david dot maciejak at kyxar dot fr>
  3. #
  4. # Ref: Lostmon <lostmon@gmail.com>
  5. #
  6. # This script is released under the GNU GPLv2
  7. #
  8.  
  9. if(description)
  10. {
  11.  script_id(15717);
  12.  script_bugtraq_id(11587);
  13.  if ( defined_func("script_xref") ) 
  14.     script_xref(name:"OSVDB", value:"11624");
  15.  
  16.  script_version ("$Revision: 1.2 $");
  17.  
  18.  name["english"] = "Goollery XSS";
  19.  script_name(english:name["english"]);
  20.  desc["english"] = "
  21. Goollery, a GMail based photo gallery written in PHP, 
  22. is installed on this remote host.
  23.  
  24. According to it's version number, this host is vulnerable to a 
  25. cross-site-scripting (XSS) attack threw viewpic.php script.
  26. An attacker, exploiting this flaw, would need to be able to coerce 
  27. a user to browse to a purposefully malicious URI.  
  28. Upon successful exploitation, the attacker would be able
  29. to run code within the web-browser in the security context of the
  30. remote server.
  31.  
  32. Solution : Upgrade to Goollery 0.04b or newer
  33. Risk factor : Medium";
  34.  
  35.  
  36.  script_description(english:desc["english"]);
  37.  
  38.  summary["english"] = "Checks for the presence of Goollery XSS flaw in viewpic.php ";
  39.  
  40.  script_summary(english:summary["english"]);
  41.  
  42.  script_category(ACT_GATHER_INFO);
  43.  
  44.  script_copyright(english:"This script is Copyright (C) 2004 David Maciejak");
  45.  
  46.  family["english"] = "CGI abuses : XSS";
  47.   script_family(english:family["english"]);
  48.  script_dependencie("cross_site_scripting.nasl");
  49.  script_require_ports("Services/www", 80);
  50.  exit(0);
  51. }
  52.  
  53. #
  54. # The script code starts here
  55. #
  56.  
  57.  
  58. include("http_func.inc");
  59. include("http_keepalive.inc");
  60.  
  61. port = get_http_port(default:80);
  62. if ( get_kb_item("www/" + port + "/generic_xss") ) exit(0);
  63.  
  64. if(!get_port_state(port)) exit(0);
  65. if(!can_host_php(port:port)) exit(0);
  66.  
  67. function check(loc)
  68. {
  69.      req = http_get(item:string(loc, "/viewpic.php?id=7&conversation_id=<script>foo</script>&btopage=0"),
  70.          port:port);            
  71.      r = http_keepalive_send_recv(port:port, data:req, bodyonly:1);
  72.      if( r == NULL )
  73.         exit(0);
  74.      if(egrep(pattern:"<script>foo</script>", string:r))
  75.      {
  76.          security_warning(port);
  77.         exit(0);
  78.      }
  79. }
  80.  
  81. dir = make_list(cgi_dirs(),"/goollery");
  82. foreach d (dir)    
  83. {
  84.      check(loc:d);
  85. }
  86.